using CodeSaude.Domain.Entities;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity.ModelConfiguration;

namespace CodeSaude.Infrastructure.Data.EntityConfig
{
    public class registro_acompanhanteMap : EntityTypeConfiguration<registro_acompanhante>
    {
        public registro_acompanhanteMap()
        {
            // Primary Key
            this.HasKey(t => t.id_acompanhante);

            // Properties
            this.Property(t => t.nome_acompanhante)
                .IsRequired()
                .HasMaxLength(200);

            this.Property(t => t.telefone_acompanhante)
                .IsRequired()
                .HasMaxLength(15);

            this.Property(t => t.cep_acompanhante)
                .HasMaxLength(9);

            this.Property(t => t.logradouro_acompanhante)
                .IsRequired()
                .HasMaxLength(200);

            this.Property(t => t.numero_acompanhante)
                .IsRequired()
                .HasMaxLength(7);

            this.Property(t => t.complemento_acompanhante)
                .HasMaxLength(100);

            this.Property(t => t.bairro_acompanhante)
                .HasMaxLength(100);

            this.Property(t => t.cidade_acompanhante)
                .HasMaxLength(100);

            this.Property(t => t.uf_acompanhante)
                .HasMaxLength(2);

            // Table & Column Mappings
            this.ToTable("registro_acompanhante");
            this.Property(t => t.id_acompanhante).HasColumnName("id_acompanhante");
            this.Property(t => t.id_registro).HasColumnName("id_registro");
            this.Property(t => t.id_parentesco).HasColumnName("id_parentesco");
            this.Property(t => t.nome_acompanhante).HasColumnName("nome_acompanhante");
            this.Property(t => t.telefone_acompanhante).HasColumnName("telefone_acompanhante");
            this.Property(t => t.cep_acompanhante).HasColumnName("cep_acompanhante");
            this.Property(t => t.logradouro_acompanhante).HasColumnName("logradouro_acompanhante");
            this.Property(t => t.numero_acompanhante).HasColumnName("numero_acompanhante");
            this.Property(t => t.complemento_acompanhante).HasColumnName("complemento_acompanhante");
            this.Property(t => t.bairro_acompanhante).HasColumnName("bairro_acompanhante");
            this.Property(t => t.cidade_acompanhante).HasColumnName("cidade_acompanhante");
            this.Property(t => t.uf_acompanhante).HasColumnName("uf_acompanhante");
            this.Property(t => t.Usuario_criacao).HasColumnName("Usuario_criacao");
            this.Property(t => t.data_criacao).HasColumnName("data_criacao");
            this.Property(t => t.Usuario_alteracao).HasColumnName("Usuario_alteracao");
            this.Property(t => t.data_alteracao).HasColumnName("data_alteracao");
        }
    }
}
